package org.xs.object.service;

import jakarta.servlet.http.HttpServletRequest;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import org.xs.object.dao.user.BaseUser;
import org.xs.object.dao.page.PageResquest;
import org.xs.object.utils.R;

import java.util.Map;

public interface IUserService {
    R login(String username, String password);

    //注册业务逻辑
    /*
    1.检查用户名是否存在
    2.检查密码格式
    3.创建用户
    4.返回用户名与重定向的路径
     */
    R register(String username, String password);

    /*
        登出
          1.删除token
          2.返回成功
         */
    R logout(HttpServletRequest request);

    /*
        获取用户信息
        1.获取token
        2.验证token
        3.返回用户信息
         */
    R info(HttpServletRequest request);

    @Transactional
    R update(BaseUser user);

    @Transactional
    R updateAvatar(MultipartFile file);

    public R getAvatar();

    @Transactional
    R updatePassword(Map<String, String> params);

    //获取用户列表
    R getUserList(PageResquest pageRequest);

    R userdelete();
}